// samsting : this file is auto create.

#ifndef ALIYUN_Slb_DescribeLoadBalancerAttributeResponse_H_
#define ALIYUN_Slb_DescribeLoadBalancerAttributeResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Slb {

class DescribeLoadBalancerAttributeResponse : public AcsResponse {
public:
  DescribeLoadBalancerAttributeResponse();

  class ListenerPortAndProtocal {
    friend class DescribeLoadBalancerAttributeResponse;
  public:
    int  GetListenerPort(void) const;
    const string& GetListenerProtocal(void) const;
  private:
    int    ListenerPort_;
    string ListenerProtocal_;
  }; // ListenerPortAndProtocal 


  class ListenerPortAndProtocol {
    friend class DescribeLoadBalancerAttributeResponse;
  public:
    int  GetListenerPort(void) const;
    const string& GetListenerProtocol(void) const;
  private:
    int    ListenerPort_;
    string ListenerProtocol_;
  }; // ListenerPortAndProtocol 


  class BackendServer {
    friend class DescribeLoadBalancerAttributeResponse;
  public:
    const string& GetServerId(void) const;
    int  GetWeight(void) const;
  private:
    string ServerId_;
    int    Weight_;
  }; // BackendServer 

  const std::vector<ListenerPortAndProtocal>& GetListenerPortsAndProtocal(void) const;
  const std::vector<ListenerPortAndProtocol>& GetListenerPortsAndProtocol(void) const;
  const std::vector<BackendServer>& GetBackendServers(void) const;
  const std::vector<ListenerPort>& GetListenerPorts(void) const;
  const string& GetLoadBalancerId(void) const;
  const string& GetLoadBalancerName(void) const;
  const string& GetLoadBalancerStatus(void) const;
  const string& GetRegionId(void) const;
  const string& GetRegionIdAlias(void) const;
  const string& GetAddress(void) const;
  const string& GetAddressType(void) const;
  const string& GetVpcId(void) const;
  const string& GetVSwitchId(void) const;
  const string& GetNetworkType(void) const;
  const string& GetInternetChargeType(void) const;
  int  GetBandwidth(void) const;
  int  GetSysBandwidth(void) const;
  const string& GetCreateTime(void) const;
  int64 GetCreateTimeStamp(void) const;
  const string& GetMasterZoneId(void) const;
  const string& GetSlaveZoneId(void) const;
  int  GetMaxConnLimit(void) const;
  const string& GetSecurityStatus(void) const;

private:
  std::vector<ListenerPortAndProtocal> ListenerPortsAndProtocal_;
  std::vector<ListenerPortAndProtocol> ListenerPortsAndProtocol_;
  std::vector<BackendServer> BackendServers_;
  std::vector<ListenerPort> ListenerPorts_;
  string LoadBalancerId_;
  string LoadBalancerName_;
  string LoadBalancerStatus_;
  string RegionId_;
  string RegionIdAlias_;
  string Address_;
  string AddressType_;
  string VpcId_;
  string VSwitchId_;
  string NetworkType_;
  string InternetChargeType_;
  int    Bandwidth_;
  int    SysBandwidth_;
  string CreateTime_;
  int64  CreateTimeStamp_;
  string MasterZoneId_;
  string SlaveZoneId_;
  int    MaxConnLimit_;
  string SecurityStatus_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Slb {

#endif // #ifndef ALIYUN_Slb_DescribeLoadBalancerAttributeResponse_H_

// end of file 
